home *** CD-ROM | disk | FTP | other *** search
/ Aminet 44 / Aminet 44 (2001)(GTI - Schatztruhe)[!][Aug 2001].iso / Aminet / hard / hack / ps2m.readme < prev    next >
Text File  |  2001-07-04  |  10KB  |  244 lines

  1. Short:    Ultimate Amiga PS/2 WheelMouseController
  2. Author:   rdc@cyberlan.mtu-net.ru
  3. Uploader: rdc@cyberlan.mtu-net.ru
  4. Version:  1.4
  5. Type:     hard/hack
  6.  
  7. Amiga PS/2 Wheel Mouse Controller - new version:
  8.  
  9. - my email was changed
  10. - added 5-button Intellimouse Explorer protocol support
  11. - added support of 4th button event into WBM
  12. - two versions of hardware:
  13.   - 4-button version with hardware reset feature
  14.   - 5-button version without hardware reset feature
  15.     (recommended for optical mice)
  16.  
  17. And even you can send me your favourite mouse - and I will
  18. add support of it to next version of my controller.
  19.  
  20.  
  21. Advantages of this controller:
  22.  
  23. - full open source under GPL
  24.   (General Public License, text of license included)
  25. - linear movement interpolation: mouse movements will be
  26.   ideal smooth on any screen frame rates
  27. - MMB (Middle Mouse Button) support
  28. - System-friendly fourth mouse button support
  29. - Fifth mouse button support - now on Amiga too!
  30. - detection of Amiga mouse counters overrun
  31.   (127 pixels per frame for DblPAL 48Hz)
  32. - full Plug'n'Play support:
  33.   hotswap - you can change mouse «on the fly»
  34. - mouse hangs detection: controller checks mouse every
  35.   2 seconds and will reset it if mouse doesn't reply
  36. - support of popular Microsoft Intellimouse wheel protocol
  37.   (for example, Genius NetScroll)
  38. - support of Microsoft Intellimouse Explorer protocol
  39.   (for example, A4Tech WOP-35 - all 5 buttons work)
  40. - fully compatible with Amiga NewMouse wheel standard
  41. - fully compatible with WheelBusMouse software
  42. - you can simultaneously use mouse & 2 joysticks
  43. - no «calibration» requirements
  44. - wheel works in any screen mode
  45. - horizontal scrolling even on one-wheel mouse
  46. - very low CPU load in wheel mode
  47. - most advanced Amiga PS/2 mouse controller :-)
  48.  
  49.  
  50. More detailed info:
  51.  
  52. - detection of Amiga mouse counters overrun:
  53.  
  54.   Amiga has only one-byte signed counters for mouse, and AmigaOS
  55.   checks them only one time per vblank.  This means that mouse may
  56.   move only 127*VBlankFreq pixels per second (6096 pixels per
  57.   second for default DblPAL).  If this value was overran, AmigaOS
  58.   can't detect true movement of mouse and pointer will disorderly
  59.   jump.  For correct this, my PS/2 controller limits movement to
  60.   maximum 6000 pixels per second.  If mouse moves faster, movement
  61.   will be remembered and executed at 6000 pixels per second.
  62.  
  63.   Slower movements will be always executed at real speed.
  64.  
  65. - linear movement interpolation:
  66.  
  67.   As we know, RS-232C (aka «COM») mice at PeeCee are extremely
  68.   poor quality - mouse pointer with them doesn't move, it jumps.
  69.   It is because generic 3-button RS-232C mouse reports about
  70.   movement only 25 times per second.  PS/2 mice work better - all
  71.   of them can report about state 80 times per second, and most of
  72.   them (excluding 5-button mice) can report 200 times per second.
  73.   But it is not an ideal because refresh rate of mouse (for
  74.   example, 80fps of Genius NetScroll Optical) interferes with
  75.   similar refresh rate (for example, 72Hz of Super72).  For correct
  76.   this, my controller moves «virtual Amiga mouse» smoothly.  If
  77.   user moves PS/2 mouse at 500 pixels per second, Amiga will get
  78.   from my PS/2 controller true 500 counts per second, with true
  79.   2-milliseconds intervals - you can get oscilliscope and check it.
  80.  
  81.   Most another PeeCee-mouse-controllers don't have similar feature,
  82.   and move «virtual Amiga mouse» by «count packets» after every
  83.   byte packet from PeeCee-mouse.  For example, if user moves 
  84.   RS-232C mouse at 500 pixels per second, and mouse sends 25
  85.   reports per second, Amiga will get 25 packets of 20 fast (some
  86.   microsecond between counts) counts per second, with approx.40
  87.   milliseconds interval between packets.  If user has 75Hz screen
  88.   refresh rate, mouse pointer will update only every three vblank,
  89.   and jumps of pointer (in comparison with ideally smooth Amiga
  90.   mouse) will only incline user to suicide using mouse cord :-)
  91.  
  92.   My PS/2 controller is free from this bug.  Theoretically I can do
  93.   even smooth RS-232C mouse controller, but is it nonsense because
  94.   of RS-232C mice death.  Modern optical mice already don't have
  95.   RS-232C versions, but there is no modern mice without PS/2 version.
  96.  
  97. - mouse hangs detection:
  98.  
  99.   Some Chinese mice are very cheap and very unstable.  Integrated
  100.   to mouse controller can hang and even don't response to reset
  101.   command.  These mice on PeeCee require reconnect (and sometimes
  102.   reboot because of not-PnP initial nature of PeeCee).  My
  103.   controller in case of 2-seconds silence (user doesn't touch
  104.   mouse) asks mouse about state.  If mouse doesn't respond,
  105.   controller will automatically take away power souce for some
  106.   time.
  107.  
  108.   Take care: hardware reset does not work in 5-button version because
  109.   of lack of PIC pins - you can select between 5-buttons version with
  110.   quality mice, and 4-buttons version with bad mice.  But anyway, you
  111.   can reset mouse by reconnect it «on the fly».  It is not a PeeCee :)
  112.  
  113. - full Plug'n'Play support:
  114.  
  115.   Because of previous feature, controller will detect mouse
  116.   replacement.  Unlike PeeCee, wheel function (or it's absence)
  117.   will be detected automatically.  You don't need to replace
  118.   drivers if you change mouse «on the fly» :)
  119.  
  120. - support of popular Microsoft Intellimouse wheel protocol
  121.  
  122.   Microsoft (for this paragraph it is a company name, not an abuse)
  123.   instead of it's normal practice to hide all details, published
  124.   protocol of wheel mouse.  It has two «layers»: protocol of wheel
  125.   mouse, and protocol of 5-button wheel mouse.  There are many
  126.   Microsoft Intellimouse compatible devices (for example, Genius
  127.   NetScroll Optical), and all of them will work with wheel at my
  128.   controller.
  129.  
  130.   Some other mice are Intellimouse Explorer (5 buttons) compatible.
  131.   For example, it is A4Tech WOP-35.  That mice will work with all 5
  132.   buttons.  If you use 4-buttons version of controller, both
  133.   additional buttons will work as one.
  134.  
  135.   Another mice, like of Genius NetScroll Optical, can be compatible
  136.   with Intellimouse, but incompatible with Intellimouse Explorer -
  137.   them will work as 3-button wheeled mice.  Some mice may be even
  138.   incompatible with Intellimouse and them will work only as 2/3 button
  139.   mice without wheel.
  140.  
  141.   Current version doesn't support any other protocols than
  142.   Intellimouse/Explorer.  But now I have a protocol analyzer and can
  143.   add support of ANY mice.  Genius NetScroll Optical will be first.
  144.  
  145.   If you have unsupported mice - you can send me it (or money, enough
  146.   for buy it here) by mail, and I will do support for it.  If you are
  147.   interested - welcome to my e-mail-box ;)
  148.  
  149. - Fifth mouse button support - now on Amiga too!
  150.  
  151.   Up to this time there was only maximum 4-button mice support on
  152.   Amiga.  My controller breaks this barrier - let's be more buttons,
  153.   good and different! :)
  154.  
  155. - horizontal scrolling even on one-wheel mouse
  156.  
  157.   You can switch vertical scrolling to horizontal by qualifier
  158.   pressing - like MMB in Mroocheck, but you can select any
  159.   qualifier key or joystick/mouse button.  For example - I use
  160.   left ALT.  Additional 4th and 5th mouse buttons may be used
  161.   for this too.
  162.  
  163. - fully compatible with Amiga NewMouse wheel standard
  164.  
  165.   Amiga NewMouse standard describes an internal AmigaOS protocol
  166.   for wheel mice.  There are some NewMouse-compatible sofware,
  167.   MUIWheel and Directory Opus Magellan for example.  All this
  168.   software will work with my PS/2 controller.
  169.  
  170.   Unfortunately, Amiga NewMouse standard describes only four buttons.
  171.   But anyway, any of two additional buttons may be used as generic
  172.   fourth button, and another - as qualifier for X-Y scroll temporary
  173.   switching.
  174.  
  175. - fully compatible with WheelBusMouse software
  176.  
  177.   WheelBusMouse is a software driver early released by me, that
  178.   allows to use any wheel mouse without controller (but you must
  179.   alter the mouse).  My PS/2 controller is fully electrically
  180.   compatible with WBM package.  This means that you can install
  181.   WBM driver and use altered wheel mouse instead of soldering
  182.   PS/2 controller.  Or you even can simply plug second mouse and use
  183.   it as a scroller :-)
  184.  
  185. - you can simultaneously use mouse & 2 joysticks
  186.  
  187.   You can use joystick(s) in parallel with mouse: pressing «Fire»
  188.   of any joystick will disable mouse function on this port.
  189.  
  190.   If you press «Fire» on Joy1 (wheel function) - wheel will be
  191.   reseted to initial phase (don't touch wheel during game).
  192.  
  193.   If you press «Fire» on Joy2 (mouse port) - mouse will be disabled
  194.   at all.  For protect against probable mouse movement, mouse will
  195.   be enabled only after any mouse button pressing.
  196.  
  197. - no «calibration» requirements
  198.  
  199.   My controller doesn't use analog inputs and doesn't require
  200.   calibration (like Mroocheck interface from Elbox).
  201.  
  202. - wheel works in any screen mode
  203.  
  204.   Wheel works in any screen mode - you can simultaneously use
  205.   wheeled applications on PAL, DblPAL, Super72 or any other
  206.   screens (unlike Mroocheck with horizontal rate setting).
  207.  
  208. - very low CPU load in wheel mode
  209.  
  210.   This controller doesn't use any software emulated serial protocols
  211.   like CD32 joypad and analog-to-digital conversions like Mroocheck.
  212.   It reduces slow chipset reading/writing cycles number to absolute
  213.   minimum, and this wheel solution is the fastest ever made for Amiga.
  214.  
  215. - most advanced Amiga PS/2 mouse controller.
  216.  
  217.   Do you doubt in this yet? :) ;) =)
  218.  
  219.  
  220. All instructions included.  Have fun!
  221.  
  222.  
  223. ============================= Archive contents =============================
  224.  
  225. Original  Packed Ratio    Date     Time    Name
  226. -------- ------- ----- --------- --------  -------------
  227.      599     347 42.0% 07-Apr-01 13:02:26 +newmouse.h
  228.      146      94 35.6% 07-Apr-01 16:14:48 +SCOPTIONS
  229.     6336    2155 65.9% 03-Jun-01 04:40:48 +wbm.c
  230.    18009    7015 61.0% 29-Mar-01 09:59:00  gpl.txt
  231.    15927   15394  3.3% 03-Jun-01 04:46:22 +ps2m_components.png
  232.     8441    8402  0.4% 03-Jun-01 04:47:32 +ps2m_solderside.png
  233.     1049     458 56.3% 04-Jun-00 23:05:42 +16f876.i
  234.     4339     996 77.0% 09-Jul-00 18:00:08 +macros.i
  235.     9324    2979 68.0% 03-Jun-01 04:43:28 +ps2m.asm
  236.     2472    1048 57.6% 03-Jun-01 02:56:02  ps2m_5button.hex
  237.     3111    3111  0.0% 03-Jun-01 03:05:14  ps2m_5button.png
  238.    14883    5845 60.7% 03-Jun-01 04:52:30  ps2m_manual
  239.     2504    1068 57.3% 03-Jun-01 02:55:48  ps2m_mousepower.hex
  240.     3107    3107  0.0% 03-Jun-01 03:07:32  ps2m_mousepower.png
  241.     1860    1222 34.3% 03-Jun-01 04:25:36  wbm
  242. -------- ------- ----- --------- --------
  243.    92107   53241 42.1% 04-Jun-101 19:35:34   15 files
  244.